package com.atguigu.cloud.order.client;

import com.atguigu.cloud.user.entity.User;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.Map;

@FeignClient(value = "cloud-user")	// 声明当前接口是一个访问user-service的feign的客户端
public interface UserClient {

    @GetMapping("/api/user/findById/{userId}")
    public User findById(@PathVariable("userId") Long userId) ;	// 根据userId查询用户信息的接口方法

    @GetMapping("/api/param/test1")
    public String test1(@RequestParam String username , @RequestParam  String password);
    //不加注解的参数 openfeign会当做请求体参数提交
    //POJO入参不能使用@RequestParam ， 使用 @SpringQueryMap注解可以将对象转为请求参数
    @GetMapping("/api/param/test2")
    public String test2(@SpringQueryMap User user);

    @GetMapping("/api/param/test3")
    public String test3(@RequestParam Map user);

    @GetMapping("/api/param/test4")
    public String test4(@RequestParam List<Long> ids);

    @PostMapping("/api/param/test5")
    public String test5(@RequestBody User user);

    @PostMapping("/api/param/test6")
    public String test6(@RequestHeader("token") String token) ;
}